data structures and applications